Electron程序逆向(asar归档解包) |
您所在的位置:网站首页 › electron 工具apk › Electron程序逆向(asar归档解包) |
要学习Electron逆向,首先要有一个Electron开发的程序的发布的包,这里就以其官方的electron-quick-start作为例子来进行一下逆向的过程。 https://github.com/electron/electron-quick-start 关于如何打包Electron程序,请参考这篇文章: https://www.cnblogs.com/cc11001100/p/14290548.html 一、Electron打包出来的程序特征识别要逆向Electron程序,首先第一步肯定是得确定这个程序是不是Electron打包出来的了,Electron打包出来的程序特征比较明显,尝试把exe文件修改为zip文件,然后用压缩程序打开,如果能够打开,至少说明它不是一个真的ELF文件,然后再看压缩文件中是不是有一个resources目录,下面有一个app.asar文件,如果符合这两个条件,基本就是Electron开发的文件了。 比如 将其修改为zip格式: 然后使用压缩软件打开这个压缩包,寻找resources文件夹: 然后跟进去: 看到有个app.asar,那这个程序八九不离十就是Electron开发的了。 总结一下: exe后缀修改为zip用压缩文件打开 存在resources/app.asar这个文件在本小节的最后抖个机灵,我们当然也可以靠Electron界面所特有的浓浓的Electron风格来辨识Electron开发的程序。 :) 二、Electron打包出来的文件的结构将electron打包出来的exe文件修改为zip后缀,并用压缩文件解压,观察解压出来的结构: ![]() asar格式的文件就是个归档文件,这玩意儿连压缩都没有,只需要看懂它的文件结构然后根据它的方式把文件提取出来就可以得到原始文件了。使用010 Editor打开一个app.asar文件: 本节是基于第二部分解包出来的源代码二次开发,使用webstorm创建一个空项目,将上面从app.asar中逆向处理的源代码拷贝过去,但是这里涉及到了几个比较蛋疼的问题,逆向出来的package.json文件里是没有devDependencies的,而electron是开发环境依赖,所以要自己手动: npm init npm add electron --save-dev然后为package.json添加一个script:"start" : " electron . " ,![]() ![]() ![]() ![]() 上面已经插入了恶意逻辑,接下来就是打包发布了,这里采用electron-builder: https://github.com/electron-userland/electron-builder 先安装此工具: npm install electron-builder -g打包前需要先为项目添加一些打包选项,编辑项目根目录下的package.json文件,为其添加build选项: "build": { "appId": "cc11001100.electron.example-001", // 程序包名 "copyright": "CC11001100", // 版权相关信息 "productName": "example-001", // 项目名字 "dmg": { "background": "res/background.png", // 背景图片的路径 "window": { // 启动后窗口左上角位置 "x": 100, "y": 100, // 启动后窗口的大小 "width": 500, "height": 300 } }, "win": { // 打包后的文件会有个图标,这个图标的路径,不指定的话默认的不好看 "icon": "res/logo.png" }注意这里的图标、appId什么的要对应好,然后在项目的根路径下执行: electron-builder即可开始打包,最终得到了发布包: 运行它: 但是通常情况下我们都是不知道appId之类的东西的,这个时候只重打包asar,然后把目录重新打包为exe格式的zip包。 将项目的node依赖及其他无用的东西删除掉,只保留最开始解出来的东西就可以了,不然打出来的包会很大: 在项目根目录下将整个项目打包为app.asar: asar p . / app.asar然后用这个app.asar狸猫换太子,把resources下的app.arsr替换掉。 TODO 怎么把文件夹打包为exe呢? 这里还没找到比较好的方案 有意思的资料,这里是一个对Electron开发的程序的源码安全性的讨论: https://github.com/electron/electron/issues/2570
|
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |